package exception;

/**
 * throw关键字，用于主动抛出一个异常
 * 通常下述情况可以主动对外抛出异常:
 * 1:程序出现了一个异常，但是该异常不应当在当前方法中被解决(责任问题)
 * 2:程序可以运行，但是运行情况不符合业务规定(本案例演示这样的情况)
 */
public class ThrowDemo {
    public static void main(String[] args) {
        Person p = new Person();
//        p.setAge(22);
        /*
            当我们调用一个含有throws声明异常抛出的方法时，编译器要求我们必须添加处理手段
            处理手段有两种:
            1:使用try-catch捕获并处理
            2:在当前方法上继续使用throws对外声明该异常的抛出(本案例相当于可在main方法上
              继续添加throws)

            实际开发中:永远不要在main方法上写throws!!
         */
        try {
            p.setAge(1000);
        } catch (IllegalAgeException e) {
            e.printStackTrace();
        }
        System.out.println("此人年龄:"+p.getAge());
    }
}



